<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.11.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>cppMISC: tree&lt; type, metaType, T &gt; 模板类 参考</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../clipboard.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../cookie.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript" src="../../darkmode_toggle.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">cppMISC<span id="projectnumber">&#160;v1.1</span>
   </div>
   <div id="projectbrief">cppMisc 文档系统</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.11.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(1); });
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('../../',true,false,'search.php','搜索',false);
  $(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">载入中...</div>
<div class="SRStatus" id="Searching">搜索中...</div>
<div class="SRStatus" id="NoMatches">未找到</div>
</div>
</div>
</div>
</div>

</div><!-- top -->
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">类</a> &#124;
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="../../d4/d2e/classtree-members.html">所有成员列表</a>  </div>
  <div class="headertitle"><div class="title">tree&lt; type, metaType, T &gt; 模板类 参考</div></div>
</div><!--header-->
<div class="contents">

<p>在TRP-CRM中大量的数据处理需要使用树形结构表，如BOM表，部门结构表，项目任务计划表等。  
 <a href="#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a>&gt;</code></p>
<div class="dynheader">
tree&lt; type, metaType, T &gt; 的协作图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d29/classtree__coll__graph.png" border="0" usemap="#atree_3_01type_00_01meta_type_00_01_t_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="atree_3_01type_00_01meta_type_00_01_t_01_4_coll__map" id="atree_3_01type_00_01meta_type_00_01_t_01_4_coll__map">
<area shape="rect" title="在TRP&#45;CRM中大量的数据处理需要使用树形结构表，如BOM表，部门结构表，项目任务计划表等。" alt="" coords="17,464,193,832"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html" title=" " alt="" coords="5,5,205,384"/>
<area shape="poly" title=" " alt="" coords="108,384,108,447,103,447,103,384"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
类</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a1b7a5e12c580b76d8615985ede1ed40d" id="r_a1b7a5e12c580b76d8615985ede1ed40d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="../../d0/da6/structtype__traits.html">type_traits</a>&lt; T &gt;::value_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1b7a5e12c580b76d8615985ede1ed40d">value_type</a></td></tr>
<tr class="separator:a1b7a5e12c580b76d8615985ede1ed40d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af759e7012e9659595dcc1ba52d4b326f" id="r_af759e7012e9659595dcc1ba52d4b326f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="../../d0/da6/structtype__traits.html">type_traits</a>&lt; T &gt;::pointer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af759e7012e9659595dcc1ba52d4b326f">pointer</a></td></tr>
<tr class="separator:af759e7012e9659595dcc1ba52d4b326f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a303c900a625a4f4b2d7476b61bae24" id="r_a5a303c900a625a4f4b2d7476b61bae24"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="../../d0/da6/structtype__traits.html">type_traits</a>&lt; T &gt;::refrence&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a></td></tr>
<tr class="separator:a5a303c900a625a4f4b2d7476b61bae24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae591d55b92a759ffe4c8d024381d473f" id="r_ae591d55b92a759ffe4c8d024381d473f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae591d55b92a759ffe4c8d024381d473f">Node</a></td></tr>
<tr class="separator:ae591d55b92a759ffe4c8d024381d473f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f3f7b3cc7cc14c9de02541511674be6" id="r_a6f3f7b3cc7cc14c9de02541511674be6"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6f3f7b3cc7cc14c9de02541511674be6">NodePtr</a></td></tr>
<tr class="separator:a6f3f7b3cc7cc14c9de02541511674be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr class="memitem:a8aaac996333eff591e075d9d9ff23d1f" id="r_a8aaac996333eff591e075d9d9ff23d1f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> { <br />
&#160;&#160;<a class="el" href="#a8aaac996333eff591e075d9d9ff23d1fa23c9a98dc2b24ed24d06307a210823f8">OK</a>
, <a class="el" href="#a8aaac996333eff591e075d9d9ff23d1fadf882dcb1b8d6fa6e12557f9a54a6580">ERR_DATA_EMPTY</a>
, <a class="el" href="#a8aaac996333eff591e075d9d9ff23d1faad9762910680dc0eb7174d93475b32db">ERR_ALLOC_MEM</a>
, <a class="el" href="#a8aaac996333eff591e075d9d9ff23d1fa703d994c2540939ef5b9041269eafe96">ERR_TREE_EMPTY</a>
, <br />
&#160;&#160;<a class="el" href="#a8aaac996333eff591e075d9d9ff23d1fa672150b3cc4a82960e6a656cbc537834">ERR_OUT_CHILDREN_RANGE</a>
, <a class="el" href="#a8aaac996333eff591e075d9d9ff23d1fa8145215ff376d30e71314da1525f9ec8">ERR_CAN_NOT_FIND</a>
, <a class="el" href="#a8aaac996333eff591e075d9d9ff23d1fa0939ad9d0517d15d951fd0e7647b37f5">ERR_NULL_DATA_PT</a>
, <a class="el" href="#a8aaac996333eff591e075d9d9ff23d1fa8a4ff663e02d05ba389aa3ec79a8efc5">ERR_ROOT_ASGN</a>
<br />
 }</td></tr>
<tr class="separator:a8aaac996333eff591e075d9d9ff23d1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a380ec7ea6b8b0ec18069ee7cabdd7a54" id="r_a380ec7ea6b8b0ec18069ee7cabdd7a54"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a380ec7ea6b8b0ec18069ee7cabdd7a54">tree</a> ()</td></tr>
<tr class="memdesc:a380ec7ea6b8b0ec18069ee7cabdd7a54"><td class="mdescLeft">&#160;</td><td class="mdescRight">对象构造  <br /></td></tr>
<tr class="separator:a380ec7ea6b8b0ec18069ee7cabdd7a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad362a98097f3713fa89c22bcb20c9c5c" id="r_ad362a98097f3713fa89c22bcb20c9c5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad362a98097f3713fa89c22bcb20c9c5c">tree</a> (bool allcRoot)</td></tr>
<tr class="separator:ad362a98097f3713fa89c22bcb20c9c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca269a11ef91945884af6bc8618434e1" id="r_aca269a11ef91945884af6bc8618434e1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aca269a11ef91945884af6bc8618434e1">~tree</a> ()</td></tr>
<tr class="separator:aca269a11ef91945884af6bc8618434e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abee1c4e0db88e79568a1949ab81d260f" id="r_abee1c4e0db88e79568a1949ab81d260f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abee1c4e0db88e79568a1949ab81d260f">getRoot</a> ()</td></tr>
<tr class="separator:abee1c4e0db88e79568a1949ab81d260f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f734c46a53d12279b6fdc7faf6b9f0f" id="r_a6f734c46a53d12279b6fdc7faf6b9f0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6f734c46a53d12279b6fdc7faf6b9f0f">getRootPtr</a> ()</td></tr>
<tr class="separator:a6f734c46a53d12279b6fdc7faf6b9f0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe2971cdd24122474a399fb881de5946" id="r_abe2971cdd24122474a399fb881de5946"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abe2971cdd24122474a399fb881de5946">empty</a> () const</td></tr>
<tr class="memdesc:abe2971cdd24122474a399fb881de5946"><td class="mdescLeft">&#160;</td><td class="mdescRight">判断对象是否是空对象  <br /></td></tr>
<tr class="separator:abe2971cdd24122474a399fb881de5946"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7779d36079b2147d8e48ecf5dc36e08d" id="r_a7779d36079b2147d8e48ecf5dc36e08d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7779d36079b2147d8e48ecf5dc36e08d">have_children</a> (const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *p) const</td></tr>
<tr class="separator:a7779d36079b2147d8e48ecf5dc36e08d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b33cf4bc78530efd6c2504b49b2d7d3" id="r_a0b33cf4bc78530efd6c2504b49b2d7d3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0b33cf4bc78530efd6c2504b49b2d7d3">have_children</a> (const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;p) const</td></tr>
<tr class="separator:a0b33cf4bc78530efd6c2504b49b2d7d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab2d999ef5ffe8f75bf176392601147" id="r_a8ab2d999ef5ffe8f75bf176392601147"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8ab2d999ef5ffe8f75bf176392601147">have_sibling</a> (const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *p) const</td></tr>
<tr class="separator:a8ab2d999ef5ffe8f75bf176392601147"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a6ced7a1cee93b070d6d21cb113cbf8" id="r_a5a6ced7a1cee93b070d6d21cb113cbf8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5a6ced7a1cee93b070d6d21cb113cbf8">have_sibling</a> (const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;p) const</td></tr>
<tr class="separator:a5a6ced7a1cee93b070d6d21cb113cbf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7ab12229576333df8da0020464d5e7c" id="r_af7ab12229576333df8da0020464d5e7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af7ab12229576333df8da0020464d5e7c">for_each</a> (std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;) &gt; fun)</td></tr>
<tr class="memdesc:af7ab12229576333df8da0020464d5e7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">遍历树  <br /></td></tr>
<tr class="separator:af7ab12229576333df8da0020464d5e7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1c03436c2752e5900859fb18e21af74" id="r_ab1c03436c2752e5900859fb18e21af74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab1c03436c2752e5900859fb18e21af74">for_each</a> (std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *)&gt; fun)</td></tr>
<tr class="memdesc:ab1c03436c2752e5900859fb18e21af74"><td class="mdescLeft">&#160;</td><td class="mdescRight">树的先根深度优先遍历  <br /></td></tr>
<tr class="separator:ab1c03436c2752e5900859fb18e21af74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56c4fd6197458cd9221aa73ca1292555" id="r_a56c4fd6197458cd9221aa73ca1292555"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a56c4fd6197458cd9221aa73ca1292555">for_each_2</a> (std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *) &gt; fun)</td></tr>
<tr class="memdesc:a56c4fd6197458cd9221aa73ca1292555"><td class="mdescLeft">&#160;</td><td class="mdescRight">后根遍历，采用后根遍历非常方便销毁对象  <br /></td></tr>
<tr class="separator:a56c4fd6197458cd9221aa73ca1292555"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a195cb527a182cacf1bfa1521a7a64e91" id="r_a195cb527a182cacf1bfa1521a7a64e91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a195cb527a182cacf1bfa1521a7a64e91">for_each</a> (<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *root, std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *node, bool etc, bool bkp) &gt; fun)</td></tr>
<tr class="memdesc:a195cb527a182cacf1bfa1521a7a64e91"><td class="mdescLeft">&#160;</td><td class="mdescRight">后根遍历  <br /></td></tr>
<tr class="separator:a195cb527a182cacf1bfa1521a7a64e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62787da47859dcb8785d55ba29c6677f" id="r_a62787da47859dcb8785d55ba29c6677f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a62787da47859dcb8785d55ba29c6677f">for_each_2</a> (<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *root, std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *) &gt; fun)</td></tr>
<tr class="memdesc:a62787da47859dcb8785d55ba29c6677f"><td class="mdescLeft">&#160;</td><td class="mdescRight">后根遍历, 将节点以指针的方式传递给回调函数，并且以指定节点开始遍历  <br /></td></tr>
<tr class="separator:a62787da47859dcb8785d55ba29c6677f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa79d36ad6f0e4c2ceb9f88964b9e0fe1" id="r_aa79d36ad6f0e4c2ceb9f88964b9e0fe1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa79d36ad6f0e4c2ceb9f88964b9e0fe1">find</a> (const <a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a> value)</td></tr>
<tr class="memdesc:aa79d36ad6f0e4c2ceb9f88964b9e0fe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">查找给定值的节点。这个函数要求内容对象必须支持==  <br /></td></tr>
<tr class="separator:aa79d36ad6f0e4c2ceb9f88964b9e0fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f03012364a931feeda54276264e957f" id="r_a7f03012364a931feeda54276264e957f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7f03012364a931feeda54276264e957f">find_if</a> (const <a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a> value, std::function&lt; bool(const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;a, const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;b)&gt; fun)</td></tr>
<tr class="memdesc:a7f03012364a931feeda54276264e957f"><td class="mdescLeft">&#160;</td><td class="mdescRight">查找给定的值。这个函数采用比对函数的方式进行比对，方便了任何方式的比对操作。即使对象并不支持==操作符号 也可以完成比对操作  <br /></td></tr>
<tr class="separator:a7f03012364a931feeda54276264e957f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97d0453d1d0731a30f9b615406bc9a43" id="r_a97d0453d1d0731a30f9b615406bc9a43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a97d0453d1d0731a30f9b615406bc9a43">find_if</a> (const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;value, std::function&lt; bool(const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;a, const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;b) &gt; fun)</td></tr>
<tr class="separator:a97d0453d1d0731a30f9b615406bc9a43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8ade1e05e68d8406c9916d393c095f3" id="r_aa8ade1e05e68d8406c9916d393c095f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa8ade1e05e68d8406c9916d393c095f3">current</a> ()</td></tr>
<tr class="memdesc:aa8ade1e05e68d8406c9916d393c095f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">current  <br /></td></tr>
<tr class="separator:aa8ade1e05e68d8406c9916d393c095f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75e48363bb7d31de42b18a63bb06afed" id="r_a75e48363bb7d31de42b18a63bb06afed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a75e48363bb7d31de42b18a63bb06afed">insert</a> (<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *parent, const <a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a> value)</td></tr>
<tr class="memdesc:a75e48363bb7d31de42b18a63bb06afed"><td class="mdescLeft">&#160;</td><td class="mdescRight">在给定的父节点下添加一个孩子节点。这个函数只会在父节点下的所有孩子节点最后添加  <br /></td></tr>
<tr class="separator:a75e48363bb7d31de42b18a63bb06afed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71b5751a6a55395afe0e65c28e37597a" id="r_a71b5751a6a55395afe0e65c28e37597a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a71b5751a6a55395afe0e65c28e37597a">insert</a> (<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *parent, <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *node)</td></tr>
<tr class="separator:a71b5751a6a55395afe0e65c28e37597a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2c4e9d187d6364bb08bbeb233949687" id="r_ad2c4e9d187d6364bb08bbeb233949687"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad2c4e9d187d6364bb08bbeb233949687">insert</a> (<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *parent, <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *pre, const <a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a> value)</td></tr>
<tr class="separator:ad2c4e9d187d6364bb08bbeb233949687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a265eb5fcb1aab37f8bfc746f6bf4fb77" id="r_a265eb5fcb1aab37f8bfc746f6bf4fb77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a265eb5fcb1aab37f8bfc746f6bf4fb77">insert</a> (<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *parent, <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *pre, <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *node)</td></tr>
<tr class="separator:a265eb5fcb1aab37f8bfc746f6bf4fb77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73beb0e756fc71efca1224f31e0925b7" id="r_a73beb0e756fc71efca1224f31e0925b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a73beb0e756fc71efca1224f31e0925b7">remove</a> (<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *node)</td></tr>
<tr class="memdesc:a73beb0e756fc71efca1224f31e0925b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">删除节点  <br /></td></tr>
<tr class="separator:a73beb0e756fc71efca1224f31e0925b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50348bdb1b8eaaeb2ec6723ec36abc94" id="r_a50348bdb1b8eaaeb2ec6723ec36abc94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a50348bdb1b8eaaeb2ec6723ec36abc94">remove_if</a> (std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;node)&gt; fun)</td></tr>
<tr class="memdesc:a50348bdb1b8eaaeb2ec6723ec36abc94"><td class="mdescLeft">&#160;</td><td class="mdescRight">条件删除操作  <br /></td></tr>
<tr class="separator:a50348bdb1b8eaaeb2ec6723ec36abc94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a764ccf0cec30d22799367817dbf77458" id="r_a764ccf0cec30d22799367817dbf77458"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a764ccf0cec30d22799367817dbf77458">clear</a> ()</td></tr>
<tr class="memdesc:a764ccf0cec30d22799367817dbf77458"><td class="mdescLeft">&#160;</td><td class="mdescRight">释放内容  <br /></td></tr>
<tr class="separator:a764ccf0cec30d22799367817dbf77458"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:ac00e08f3dcb0e3bc7b60dd552924439b" id="r_ac00e08f3dcb0e3bc7b60dd552924439b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac00e08f3dcb0e3bc7b60dd552924439b">m_root</a></td></tr>
<tr class="separator:ac00e08f3dcb0e3bc7b60dd552924439b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24b2e5626feba6cf0e5575eb2bb789be" id="r_a24b2e5626feba6cf0e5575eb2bb789be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a24b2e5626feba6cf0e5575eb2bb789be">p_cur</a></td></tr>
<tr class="separator:a24b2e5626feba6cf0e5575eb2bb789be"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename type, typename metaType = typename std::decay&lt; type &gt; :: type, typename T = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt;<br />
class tree&lt; type, metaType, T &gt;</div><p>在TRP-CRM中大量的数据处理需要使用树形结构表，如BOM表，部门结构表，项目任务计划表等。 </p>
<dl class="section version"><dt>版本</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>日期</dt><dd>2011-2-10 ~ 2019-9-9 </dd></dl>
<dl class="section author"><dt>作者</dt><dd>宋炜 </dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00027">27</a> 行定义.</p>
</div><h2 class="groupheader">成员类型定义说明</h2>
<a id="ae591d55b92a759ffe4c8d024381d473f" name="ae591d55b92a759ffe4c8d024381d473f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae591d55b92a759ffe4c8d024381d473f">&#9670;&#160;</a></span>Node</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::Node</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00301">301</a> 行定义.</p>

</div>
</div>
<a id="a6f3f7b3cc7cc14c9de02541511674be6" name="a6f3f7b3cc7cc14c9de02541511674be6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f3f7b3cc7cc14c9de02541511674be6">&#9670;&#160;</a></span>NodePtr</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a>* <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::NodePtr</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00302">302</a> 行定义.</p>

</div>
</div>
<a id="af759e7012e9659595dcc1ba52d4b326f" name="af759e7012e9659595dcc1ba52d4b326f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af759e7012e9659595dcc1ba52d4b326f">&#9670;&#160;</a></span>pointer</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="../../d0/da6/structtype__traits.html">type_traits</a>&lt;T&gt;::pointer <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::pointer</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00043">43</a> 行定义.</p>

</div>
</div>
<a id="a5a303c900a625a4f4b2d7476b61bae24" name="a5a303c900a625a4f4b2d7476b61bae24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a303c900a625a4f4b2d7476b61bae24">&#9670;&#160;</a></span>reference</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="../../d0/da6/structtype__traits.html">type_traits</a>&lt;T&gt;::refrence <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::reference</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00044">44</a> 行定义.</p>

</div>
</div>
<a id="a1b7a5e12c580b76d8615985ede1ed40d" name="a1b7a5e12c580b76d8615985ede1ed40d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b7a5e12c580b76d8615985ede1ed40d">&#9670;&#160;</a></span>value_type</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="../../d0/da6/structtype__traits.html">type_traits</a>&lt;T&gt;::value_type <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::value_type</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00042">42</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">成员枚举类型说明</h2>
<a id="a8aaac996333eff591e075d9d9ff23d1f" name="a8aaac996333eff591e075d9d9ff23d1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8aaac996333eff591e075d9d9ff23d1f">&#9670;&#160;</a></span>emErrCode</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">tree::emErrCode</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a8aaac996333eff591e075d9d9ff23d1fa23c9a98dc2b24ed24d06307a210823f8" name="a8aaac996333eff591e075d9d9ff23d1fa23c9a98dc2b24ed24d06307a210823f8"></a>OK&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a8aaac996333eff591e075d9d9ff23d1fadf882dcb1b8d6fa6e12557f9a54a6580" name="a8aaac996333eff591e075d9d9ff23d1fadf882dcb1b8d6fa6e12557f9a54a6580"></a>ERR_DATA_EMPTY&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a8aaac996333eff591e075d9d9ff23d1faad9762910680dc0eb7174d93475b32db" name="a8aaac996333eff591e075d9d9ff23d1faad9762910680dc0eb7174d93475b32db"></a>ERR_ALLOC_MEM&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a8aaac996333eff591e075d9d9ff23d1fa703d994c2540939ef5b9041269eafe96" name="a8aaac996333eff591e075d9d9ff23d1fa703d994c2540939ef5b9041269eafe96"></a>ERR_TREE_EMPTY&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a8aaac996333eff591e075d9d9ff23d1fa672150b3cc4a82960e6a656cbc537834" name="a8aaac996333eff591e075d9d9ff23d1fa672150b3cc4a82960e6a656cbc537834"></a>ERR_OUT_CHILDREN_RANGE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a8aaac996333eff591e075d9d9ff23d1fa8145215ff376d30e71314da1525f9ec8" name="a8aaac996333eff591e075d9d9ff23d1fa8145215ff376d30e71314da1525f9ec8"></a>ERR_CAN_NOT_FIND&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a8aaac996333eff591e075d9d9ff23d1fa0939ad9d0517d15d951fd0e7647b37f5" name="a8aaac996333eff591e075d9d9ff23d1fa0939ad9d0517d15d951fd0e7647b37f5"></a>ERR_NULL_DATA_PT&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a8aaac996333eff591e075d9d9ff23d1fa8a4ff663e02d05ba389aa3ec79a8efc5" name="a8aaac996333eff591e075d9d9ff23d1fa8a4ff663e02d05ba389aa3ec79a8efc5"></a>ERR_ROOT_ASGN&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00031">31</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">构造及析构函数说明</h2>
<a id="a380ec7ea6b8b0ec18069ee7cabdd7a54" name="a380ec7ea6b8b0ec18069ee7cabdd7a54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a380ec7ea6b8b0ec18069ee7cabdd7a54">&#9670;&#160;</a></span>tree() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;<a class="el" href="../../d4/d4d/classtree.html">::tree</a> </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>对象构造 </p>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00307">307</a> 行定义.</p>

</div>
</div>
<a id="ad362a98097f3713fa89c22bcb20c9c5c" name="ad362a98097f3713fa89c22bcb20c9c5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad362a98097f3713fa89c22bcb20c9c5c">&#9670;&#160;</a></span>tree() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;<a class="el" href="../../d4/d4d/classtree.html">::tree</a> </td>
          <td>(</td>
          <td class="paramtype">bool</td>          <td class="paramname"><span class="paramname"><em>allcRoot</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00310">310</a> 行定义.</p>

</div>
</div>
<a id="aca269a11ef91945884af6bc8618434e1" name="aca269a11ef91945884af6bc8618434e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca269a11ef91945884af6bc8618434e1">&#9670;&#160;</a></span>~tree()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::~<a class="el" href="../../d4/d4d/classtree.html">tree</a> </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00314">314</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_aca269a11ef91945884af6bc8618434e1_cgraph.png" border="0" usemap="#ad4/d4d/classtree_aca269a11ef91945884af6bc8618434e1_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_aca269a11ef91945884af6bc8618434e1_cgraph" id="ad4/d4d/classtree_aca269a11ef91945884af6bc8618434e1_cgraph">
<area shape="rect" title=" " alt="" coords="5,132,87,159"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a764ccf0cec30d22799367817dbf77458" title="释放内容" alt="" coords="135,132,214,159"/>
<area shape="poly" title=" " alt="" coords="87,143,119,143,119,148,87,148"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a56c4fd6197458cd9221aa73ca1292555" title="后根遍历，采用后根遍历非常方便销毁对象" alt="" coords="262,157,377,184"/>
<area shape="poly" title=" " alt="" coords="215,150,247,155,246,161,214,155"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a73beb0e756fc71efca1224f31e0925b7" title="删除节点" alt="" coords="272,107,367,133"/>
<area shape="poly" title=" " alt="" coords="214,136,257,128,258,133,215,141"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a4b4b7f6f107e9504e8cdc5427951bbbd" title=" " alt="" coords="425,56,583,83"/>
<area shape="poly" title=" " alt="" coords="356,155,376,143,390,130,399,118,408,105,424,92,433,87,436,92,427,97,412,109,403,121,394,134,379,147,359,159"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a7779d36079b2147d8e48ecf5dc36e08d" title=" " alt="" coords="438,208,570,235"/>
<area shape="poly" title=" " alt="" coords="372,182,439,201,437,206,370,187"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a8ab2d999ef5ffe8f75bf176392601147" title=" " alt="" coords="442,259,566,285"/>
<area shape="poly" title=" " alt="" coords="338,182,377,213,427,244,439,250,437,255,424,249,374,217,335,187"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a54951c8d6a396be5c3ef091cae7386e5" title=" " alt="" coords="439,107,569,133"/>
<area shape="poly" title=" " alt="" coords="370,154,437,135,439,141,372,159"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#ad60ae0d2ef5ed5d67141975493bc257c" title="取弟弟节点指针" alt="" coords="429,157,579,184"/>
<area shape="poly" title=" " alt="" coords="378,168,414,168,414,173,378,173"/>
<area shape="poly" title=" " alt="" coords="367,105,438,85,439,90,368,110"/>
<area shape="poly" title=" " alt="" coords="367,117,423,117,423,123,367,123"/>
<area shape="poly" title=" " alt="" coords="368,130,439,150,438,155,367,135"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#afec2c41157f226f9f9da46bcb9afa8ac" title="去父亲节点" alt="" coords="430,5,578,32"/>
<area shape="poly" title=" " alt="" coords="335,104,374,73,424,42,437,36,439,41,427,46,377,78,338,108"/>
</map>
</div>

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a764ccf0cec30d22799367817dbf77458" name="a764ccf0cec30d22799367817dbf77458"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a764ccf0cec30d22799367817dbf77458">&#9670;&#160;</a></span>clear()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::clear </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>释放内容 </p>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00760">760</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a764ccf0cec30d22799367817dbf77458_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a764ccf0cec30d22799367817dbf77458_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a764ccf0cec30d22799367817dbf77458_cgraph" id="ad4/d4d/classtree_a764ccf0cec30d22799367817dbf77458_cgraph">
<area shape="rect" title="释放内容" alt="" coords="5,132,85,159"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a56c4fd6197458cd9221aa73ca1292555" title="后根遍历，采用后根遍历非常方便销毁对象" alt="" coords="133,157,248,184"/>
<area shape="poly" title=" " alt="" coords="86,150,118,155,117,161,85,155"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a73beb0e756fc71efca1224f31e0925b7" title="删除节点" alt="" coords="143,107,238,133"/>
<area shape="poly" title=" " alt="" coords="85,136,128,128,129,133,86,141"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a4b4b7f6f107e9504e8cdc5427951bbbd" title=" " alt="" coords="296,56,453,83"/>
<area shape="poly" title=" " alt="" coords="227,155,246,143,260,130,270,118,279,105,294,92,304,87,306,92,298,97,283,109,274,121,264,134,250,147,229,159"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a7779d36079b2147d8e48ecf5dc36e08d" title=" " alt="" coords="309,208,440,235"/>
<area shape="poly" title=" " alt="" coords="243,182,309,201,308,206,241,187"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a8ab2d999ef5ffe8f75bf176392601147" title=" " alt="" coords="313,259,436,285"/>
<area shape="poly" title=" " alt="" coords="209,182,248,213,297,244,310,250,308,255,295,249,245,217,206,187"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a54951c8d6a396be5c3ef091cae7386e5" title=" " alt="" coords="310,107,440,133"/>
<area shape="poly" title=" " alt="" coords="241,154,308,135,309,141,243,159"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#ad60ae0d2ef5ed5d67141975493bc257c" title="取弟弟节点指针" alt="" coords="300,157,449,184"/>
<area shape="poly" title=" " alt="" coords="249,168,285,168,285,173,249,173"/>
<area shape="poly" title=" " alt="" coords="237,105,308,85,310,90,239,110"/>
<area shape="poly" title=" " alt="" coords="238,117,294,117,294,123,238,123"/>
<area shape="poly" title=" " alt="" coords="239,130,310,150,308,155,237,135"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#afec2c41157f226f9f9da46bcb9afa8ac" title="去父亲节点" alt="" coords="300,5,449,32"/>
<area shape="poly" title=" " alt="" coords="206,104,245,73,295,42,308,36,310,41,297,46,248,78,209,108"/>
</map>
</div>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a764ccf0cec30d22799367817dbf77458_icgraph.png" border="0" usemap="#ad4/d4d/classtree_a764ccf0cec30d22799367817dbf77458_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a764ccf0cec30d22799367817dbf77458_icgraph" id="ad4/d4d/classtree_a764ccf0cec30d22799367817dbf77458_icgraph">
<area shape="rect" title="释放内容" alt="" coords="135,5,214,32"/>
<area shape="rect" href="../../d4/d4d/classtree.html#aca269a11ef91945884af6bc8618434e1" title=" " alt="" coords="5,5,87,32"/>
<area shape="poly" title=" " alt="" coords="119,21,87,21,87,16,119,16"/>
</map>
</div>

</div>
</div>
<a id="aa8ade1e05e68d8406c9916d393c095f3" name="aa8ade1e05e68d8406c9916d393c095f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8ade1e05e68d8406c9916d393c095f3">&#9670;&#160;</a></span>current()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> * <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::current </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>current </p>
<dl class="section return"><dt>返回</dt><dd></dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00600">600</a> 行定义.</p>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_aa8ade1e05e68d8406c9916d393c095f3_icgraph.png" border="0" usemap="#ad4/d4d/classtree_aa8ade1e05e68d8406c9916d393c095f3_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_aa8ade1e05e68d8406c9916d393c095f3_icgraph" id="ad4/d4d/classtree_aa8ade1e05e68d8406c9916d393c095f3_icgraph">
<area shape="rect" title="current" alt="" coords="147,5,238,32"/>
<area shape="rect" href="../../dc/d2f/classfs.html#aca59d4eca486930e503c0e6902ae591c" title="枚举文件，将指定目录按照原本的结构整理成一个可以以树形结构遍历的数据" alt="" coords="5,5,99,32"/>
<area shape="poly" title=" " alt="" coords="131,21,99,21,99,16,131,16"/>
</map>
</div>

</div>
</div>
<a id="abe2971cdd24122474a399fb881de5946" name="abe2971cdd24122474a399fb881de5946"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe2971cdd24122474a399fb881de5946">&#9670;&#160;</a></span>empty()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::empty </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>判断对象是否是空对象 </p>
<dl class="section return"><dt>返回</dt><dd>如果是空对象则返回true，否则返回false </dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00330">330</a> 行定义.</p>

</div>
</div>
<a id="aa79d36ad6f0e4c2ceb9f88964b9e0fe1" name="aa79d36ad6f0e4c2ceb9f88964b9e0fe1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa79d36ad6f0e4c2ceb9f88964b9e0fe1">&#9670;&#160;</a></span>find()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> * <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::find </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a></td>          <td class="paramname"><span class="paramname"><em>value</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>查找给定值的节点。这个函数要求内容对象必须支持== </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">value[</td><td>I ] , 要查找的目标值 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>成功返回节点指针，否则返回nullptr </dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00526">526</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_aa79d36ad6f0e4c2ceb9f88964b9e0fe1_cgraph.png" border="0" usemap="#ad4/d4d/classtree_aa79d36ad6f0e4c2ceb9f88964b9e0fe1_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_aa79d36ad6f0e4c2ceb9f88964b9e0fe1_cgraph" id="ad4/d4d/classtree_aa79d36ad6f0e4c2ceb9f88964b9e0fe1_cgraph">
<area shape="rect" title="查找给定值的节点。这个函数要求内容对象必须支持==" alt="" coords="5,29,78,56"/>
<area shape="rect" href="../../d4/d4d/classtree.html#af7ab12229576333df8da0020464d5e7c" title="遍历树" alt="" coords="126,29,227,56"/>
<area shape="poly" title=" " alt="" coords="78,40,110,40,110,45,78,45"/>
<area shape="poly" title=" " alt="" coords="152,30,148,21,151,11,161,5,176,3,193,5,202,12,199,16,191,10,176,8,163,10,156,14,154,20,157,28"/>
</map>
</div>

</div>
</div>
<a id="a7f03012364a931feeda54276264e957f" name="a7f03012364a931feeda54276264e957f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f03012364a931feeda54276264e957f">&#9670;&#160;</a></span>find_if() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> * <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::find_if </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a></td>          <td class="paramname"><span class="paramname"><em>value</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::function&lt; bool(const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;a, const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;b)&gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span>&#160;)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>查找给定的值。这个函数采用比对函数的方式进行比对，方便了任何方式的比对操作。即使对象并不支持==操作符号 也可以完成比对操作 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">value[</td><td>I ], 要查找的值 </td></tr>
    <tr><td class="paramname">fun[</td><td>I ] , 比对函数 bool fun( const treeNode&amp; a , const treeNode&amp; b ); 如果是要查找的值则返回true ， 否则返回 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00553">553</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a7f03012364a931feeda54276264e957f_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a7f03012364a931feeda54276264e957f_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a7f03012364a931feeda54276264e957f_cgraph" id="ad4/d4d/classtree_a7f03012364a931feeda54276264e957f_cgraph">
<area shape="rect" title="查找给定的值。这个函数采用比对函数的方式进行比对，方便了任何方式的比对操作。即使对象并不支持==操作符号 也可以完成比对操作" alt="" coords="5,29,92,56"/>
<area shape="rect" href="../../d4/d4d/classtree.html#af7ab12229576333df8da0020464d5e7c" title="遍历树" alt="" coords="140,29,241,56"/>
<area shape="poly" title=" " alt="" coords="92,40,124,40,124,45,92,45"/>
<area shape="poly" title=" " alt="" coords="165,30,161,21,164,11,174,5,190,3,208,5,217,12,214,16,206,10,190,8,176,10,168,14,166,20,170,28"/>
</map>
</div>

</div>
</div>
<a id="a97d0453d1d0731a30f9b615406bc9a43" name="a97d0453d1d0731a30f9b615406bc9a43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97d0453d1d0731a30f9b615406bc9a43">&#9670;&#160;</a></span>find_if() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> * <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::find_if </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;</td>          <td class="paramname"><span class="paramname"><em>value</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::function&lt; bool(const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;a, const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;b) &gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span>&#160;)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00573">573</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a97d0453d1d0731a30f9b615406bc9a43_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a97d0453d1d0731a30f9b615406bc9a43_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a97d0453d1d0731a30f9b615406bc9a43_cgraph" id="ad4/d4d/classtree_a97d0453d1d0731a30f9b615406bc9a43_cgraph">
<area shape="rect" title=" " alt="" coords="5,29,92,56"/>
<area shape="rect" href="../../d4/d4d/classtree.html#af7ab12229576333df8da0020464d5e7c" title="遍历树" alt="" coords="140,29,241,56"/>
<area shape="poly" title=" " alt="" coords="92,40,124,40,124,45,92,45"/>
<area shape="poly" title=" " alt="" coords="165,30,161,21,164,11,174,5,190,3,208,5,217,12,214,16,206,10,190,8,176,10,168,14,166,20,170,28"/>
</map>
</div>

</div>
</div>
<a id="af7ab12229576333df8da0020464d5e7c" name="af7ab12229576333df8da0020464d5e7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7ab12229576333df8da0020464d5e7c">&#9670;&#160;</a></span>for_each() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::for_each </td>
          <td>(</td>
          <td class="paramtype">std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;) &gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>遍历树 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">访问节点的时候的回调函数</td><td></td></tr>
  </table>
  </dd>
</dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00356">356</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_af7ab12229576333df8da0020464d5e7c_cgraph.png" border="0" usemap="#ad4/d4d/classtree_af7ab12229576333df8da0020464d5e7c_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_af7ab12229576333df8da0020464d5e7c_cgraph" id="ad4/d4d/classtree_af7ab12229576333df8da0020464d5e7c_cgraph">
<area shape="rect" title="遍历树" alt="" coords="5,29,107,56"/>
<area shape="poly" title=" " alt="" coords="37,30,34,20,36,11,44,5,56,3,69,5,76,12,72,16,66,10,56,8,46,10,41,14,40,20,42,28"/>
</map>
</div>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_af7ab12229576333df8da0020464d5e7c_icgraph.png" border="0" usemap="#ad4/d4d/classtree_af7ab12229576333df8da0020464d5e7c_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_af7ab12229576333df8da0020464d5e7c_icgraph" id="ad4/d4d/classtree_af7ab12229576333df8da0020464d5e7c_icgraph">
<area shape="rect" title="遍历树" alt="" coords="162,132,263,159"/>
<area shape="poly" title=" " alt="" coords="238,119,229,113,212,111,197,113,188,117,186,123,190,130,186,133,181,123,184,114,195,108,212,105,231,108,241,115"/>
<area shape="rect" href="../../d4/d4d/classtree.html#aa79d36ad6f0e4c2ceb9f88964b9e0fe1" title="查找给定值的节点。这个函数要求内容对象必须支持==" alt="" coords="23,5,96,32"/>
<area shape="poly" title=" " alt="" coords="189,121,155,84,112,46,93,35,96,30,115,42,158,80,193,118"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a7f03012364a931feeda54276264e957f" title="查找给定的值。这个函数采用比对函数的方式进行比对，方便了任何方式的比对操作。即使对象并不支持==操作符号 也可以完成比对操作" alt="" coords="16,56,103,83"/>
<area shape="poly" title=" " alt="" coords="170,127,112,97,89,85,91,81,115,92,173,122"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a97d0453d1d0731a30f9b615406bc9a43" title=" " alt="" coords="16,107,103,133"/>
<area shape="poly" title=" " alt="" coords="146,137,103,130,104,125,147,132"/>
<area shape="rect" href="../../dc/d2f/classfs.html#a13278749ac0f2cf238be3829c3b7f68d" title="遍历指定路径中的文件" alt="" coords="14,157,105,184"/>
<area shape="poly" title=" " alt="" coords="147,159,106,166,105,161,146,154"/>
<area shape="rect" href="../../d4/d4d/classtree.html#ab1c03436c2752e5900859fb18e21af74" title="树的先根深度优先遍历" alt="" coords="9,208,110,235"/>
<area shape="poly" title=" " alt="" coords="173,169,115,198,91,210,89,205,112,194,170,164"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a50348bdb1b8eaaeb2ec6723ec36abc94" title="条件删除操作" alt="" coords="5,259,114,285"/>
<area shape="poly" title=" " alt="" coords="193,173,158,211,115,249,96,260,93,256,112,245,155,207,189,169"/>
</map>
</div>

</div>
</div>
<a id="ab1c03436c2752e5900859fb18e21af74" name="ab1c03436c2752e5900859fb18e21af74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1c03436c2752e5900859fb18e21af74">&#9670;&#160;</a></span>for_each() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::for_each </td>
          <td>(</td>
          <td class="paramtype">std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *)&gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>树的先根深度优先遍历 </p>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00373">373</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_ab1c03436c2752e5900859fb18e21af74_cgraph.png" border="0" usemap="#ad4/d4d/classtree_ab1c03436c2752e5900859fb18e21af74_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_ab1c03436c2752e5900859fb18e21af74_cgraph" id="ad4/d4d/classtree_ab1c03436c2752e5900859fb18e21af74_cgraph">
<area shape="rect" title="树的先根深度优先遍历" alt="" coords="5,29,107,56"/>
<area shape="rect" href="../../d4/d4d/classtree.html#af7ab12229576333df8da0020464d5e7c" title="遍历树" alt="" coords="155,29,256,56"/>
<area shape="poly" title=" " alt="" coords="107,40,139,40,139,45,107,45"/>
<area shape="poly" title=" " alt="" coords="179,30,175,21,178,11,188,5,205,3,224,5,233,12,230,16,222,10,205,8,190,10,182,14,180,20,184,28"/>
</map>
</div>

</div>
</div>
<a id="a195cb527a182cacf1bfa1521a7a64e91" name="a195cb527a182cacf1bfa1521a7a64e91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a195cb527a182cacf1bfa1521a7a64e91">&#9670;&#160;</a></span>for_each() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::for_each </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>root</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *node, bool etc, bool bkp) &gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span>&#160;)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>后根遍历 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">root[</td><td>I ] ， 遍历起始节点 </td></tr>
    <tr><td class="paramname">fun[</td><td>I ] ， 回调函数。回调函数的格式如下： bool fun( treeNode * node , bool etc , bool bkp ); </td></tr>
    <tr><td class="paramname">node[</td><td>I ] , 访问到的节点 </td></tr>
    <tr><td class="paramname">etc[</td><td>I ] , 是否是访问子节点 </td></tr>
    <tr><td class="paramname">bkp[</td><td>I ] , 是否是回退到父节点 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>返回true继续执行遍历操作，否则结束便利操作 </dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00432">432</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a195cb527a182cacf1bfa1521a7a64e91_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a195cb527a182cacf1bfa1521a7a64e91_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a195cb527a182cacf1bfa1521a7a64e91_cgraph" id="ad4/d4d/classtree_a195cb527a182cacf1bfa1521a7a64e91_cgraph">
<area shape="rect" title="后根遍历" alt="" coords="5,81,107,108"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a4b4b7f6f107e9504e8cdc5427951bbbd" title=" " alt="" coords="155,5,312,32"/>
<area shape="poly" title=" " alt="" coords="80,78,154,42,170,35,172,40,156,46,82,83"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a7779d36079b2147d8e48ecf5dc36e08d" title=" " alt="" coords="168,56,299,83"/>
<area shape="poly" title=" " alt="" coords="107,85,152,78,153,83,107,90"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a8ab2d999ef5ffe8f75bf176392601147" title=" " alt="" coords="172,107,295,133"/>
<area shape="poly" title=" " alt="" coords="107,99,156,106,156,112,107,104"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#ad60ae0d2ef5ed5d67141975493bc257c" title="取弟弟节点指针" alt="" coords="159,157,308,184"/>
<area shape="poly" title=" " alt="" coords="82,106,156,143,172,149,170,154,154,148,80,111"/>
</map>
</div>

</div>
</div>
<a id="a56c4fd6197458cd9221aa73ca1292555" name="a56c4fd6197458cd9221aa73ca1292555"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56c4fd6197458cd9221aa73ca1292555">&#9670;&#160;</a></span>for_each_2() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::for_each_2 </td>
          <td>(</td>
          <td class="paramtype">std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *) &gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>后根遍历，采用后根遍历非常方便销毁对象 </p>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00385">385</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a56c4fd6197458cd9221aa73ca1292555_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a56c4fd6197458cd9221aa73ca1292555_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a56c4fd6197458cd9221aa73ca1292555_cgraph" id="ad4/d4d/classtree_a56c4fd6197458cd9221aa73ca1292555_cgraph">
<area shape="rect" title="后根遍历，采用后根遍历非常方便销毁对象" alt="" coords="5,107,121,133"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a4b4b7f6f107e9504e8cdc5427951bbbd" title=" " alt="" coords="169,5,326,32"/>
<area shape="poly" title=" " alt="" coords="78,104,117,73,167,42,180,36,183,41,170,46,120,78,82,108"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a7779d36079b2147d8e48ecf5dc36e08d" title=" " alt="" coords="182,56,313,83"/>
<area shape="poly" title=" " alt="" coords="114,103,181,85,182,90,115,109"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a8ab2d999ef5ffe8f75bf176392601147" title=" " alt="" coords="186,107,309,133"/>
<area shape="poly" title=" " alt="" coords="121,117,171,117,171,123,121,123"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a54951c8d6a396be5c3ef091cae7386e5" title=" " alt="" coords="182,157,312,184"/>
<area shape="poly" title=" " alt="" coords="115,131,182,150,181,155,114,137"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#ad60ae0d2ef5ed5d67141975493bc257c" title="取弟弟节点指针" alt="" coords="173,208,322,235"/>
<area shape="poly" title=" " alt="" coords="82,132,120,162,170,194,183,199,180,204,167,198,117,167,78,136"/>
</map>
</div>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a56c4fd6197458cd9221aa73ca1292555_icgraph.png" border="0" usemap="#ad4/d4d/classtree_a56c4fd6197458cd9221aa73ca1292555_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a56c4fd6197458cd9221aa73ca1292555_icgraph" id="ad4/d4d/classtree_a56c4fd6197458cd9221aa73ca1292555_icgraph">
<area shape="rect" title="后根遍历，采用后根遍历非常方便销毁对象" alt="" coords="262,5,377,32"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a764ccf0cec30d22799367817dbf77458" title="释放内容" alt="" coords="135,5,214,32"/>
<area shape="poly" title=" " alt="" coords="246,21,214,21,214,16,246,16"/>
<area shape="rect" href="../../d4/d4d/classtree.html#aca269a11ef91945884af6bc8618434e1" title=" " alt="" coords="5,5,87,32"/>
<area shape="poly" title=" " alt="" coords="119,21,87,21,87,16,119,16"/>
</map>
</div>

</div>
</div>
<a id="a62787da47859dcb8785d55ba29c6677f" name="a62787da47859dcb8785d55ba29c6677f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62787da47859dcb8785d55ba29c6677f">&#9670;&#160;</a></span>for_each_2() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::for_each_2 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>root</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *) &gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span>&#160;)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>后根遍历, 将节点以指针的方式传递给回调函数，并且以指定节点开始遍历 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">root</td><td></td></tr>
    <tr><td class="paramname">fun</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>成功操作返回OK， 否则返回错误编码 </dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00484">484</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a62787da47859dcb8785d55ba29c6677f_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a62787da47859dcb8785d55ba29c6677f_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a62787da47859dcb8785d55ba29c6677f_cgraph" id="ad4/d4d/classtree_a62787da47859dcb8785d55ba29c6677f_cgraph">
<area shape="rect" title="后根遍历, 将节点以指针的方式传递给回调函数，并且以指定节点开始遍历" alt="" coords="5,31,121,57"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a7779d36079b2147d8e48ecf5dc36e08d" title=" " alt="" coords="169,5,300,32"/>
<area shape="poly" title=" " alt="" coords="121,33,153,28,153,33,121,38"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a8ab2d999ef5ffe8f75bf176392601147" title=" " alt="" coords="173,56,296,83"/>
<area shape="poly" title=" " alt="" coords="121,50,157,55,157,61,121,55"/>
</map>
</div>

</div>
</div>
<a id="abee1c4e0db88e79568a1949ab81d260f" name="abee1c4e0db88e79568a1949ab81d260f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abee1c4e0db88e79568a1949ab81d260f">&#9670;&#160;</a></span>getRoot()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp; <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::getRoot </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00318">318</a> 行定义.</p>

</div>
</div>
<a id="a6f734c46a53d12279b6fdc7faf6b9f0f" name="a6f734c46a53d12279b6fdc7faf6b9f0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f734c46a53d12279b6fdc7faf6b9f0f">&#9670;&#160;</a></span>getRootPtr()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> * <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::getRootPtr </td>
          <td>(</td>
          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00322">322</a> 行定义.</p>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a6f734c46a53d12279b6fdc7faf6b9f0f_icgraph.png" border="0" usemap="#ad4/d4d/classtree_a6f734c46a53d12279b6fdc7faf6b9f0f_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a6f734c46a53d12279b6fdc7faf6b9f0f_icgraph" id="ad4/d4d/classtree_a6f734c46a53d12279b6fdc7faf6b9f0f_icgraph">
<area shape="rect" title=" " alt="" coords="147,31,261,57"/>
<area shape="rect" href="../../dc/d2f/classfs.html#aca59d4eca486930e503c0e6902ae591c" title="枚举文件，将指定目录按照原本的结构整理成一个可以以树形结构遍历的数据" alt="" coords="5,5,99,32"/>
<area shape="poly" title=" " alt="" coords="131,35,99,29,100,24,132,29"/>
<area shape="rect" href="../../dc/d2f/classfs.html#a13278749ac0f2cf238be3829c3b7f68d" title="遍历指定路径中的文件" alt="" coords="7,56,97,83"/>
<area shape="poly" title=" " alt="" coords="132,59,98,64,97,59,131,53"/>
</map>
</div>

</div>
</div>
<a id="a0b33cf4bc78530efd6c2504b49b2d7d3" name="a0b33cf4bc78530efd6c2504b49b2d7d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b33cf4bc78530efd6c2504b49b2d7d3">&#9670;&#160;</a></span>have_children() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::have_children </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;</td>          <td class="paramname"><span class="paramname"><em>p</em></span></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00339">339</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a0b33cf4bc78530efd6c2504b49b2d7d3_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a0b33cf4bc78530efd6c2504b49b2d7d3_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a0b33cf4bc78530efd6c2504b49b2d7d3_cgraph" id="ad4/d4d/classtree_a0b33cf4bc78530efd6c2504b49b2d7d3_cgraph">
<area shape="rect" title=" " alt="" coords="5,5,137,32"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a4b4b7f6f107e9504e8cdc5427951bbbd" title=" " alt="" coords="185,5,342,32"/>
<area shape="poly" title=" " alt="" coords="137,16,169,16,169,21,137,21"/>
</map>
</div>

</div>
</div>
<a id="a7779d36079b2147d8e48ecf5dc36e08d" name="a7779d36079b2147d8e48ecf5dc36e08d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7779d36079b2147d8e48ecf5dc36e08d">&#9670;&#160;</a></span>have_children() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::have_children </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>p</em></span></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00334">334</a> 行定义.</p>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a7779d36079b2147d8e48ecf5dc36e08d_icgraph.png" border="0" usemap="#ad4/d4d/classtree_a7779d36079b2147d8e48ecf5dc36e08d_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a7779d36079b2147d8e48ecf5dc36e08d_icgraph" id="ad4/d4d/classtree_a7779d36079b2147d8e48ecf5dc36e08d_icgraph">
<area shape="rect" title=" " alt="" coords="425,56,557,83"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a195cb527a182cacf1bfa1521a7a64e91" title="后根遍历" alt="" coords="269,5,370,32"/>
<area shape="poly" title=" " alt="" coords="428,54,367,35,368,30,430,48"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a56c4fd6197458cd9221aa73ca1292555" title="后根遍历，采用后根遍历非常方便销毁对象" alt="" coords="262,56,377,83"/>
<area shape="poly" title=" " alt="" coords="410,72,378,72,378,67,410,67"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a62787da47859dcb8785d55ba29c6677f" title="后根遍历, 将节点以指针的方式传递给回调函数，并且以指定节点开始遍历" alt="" coords="262,107,377,133"/>
<area shape="poly" title=" " alt="" coords="430,90,368,109,367,104,428,85"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a764ccf0cec30d22799367817dbf77458" title="释放内容" alt="" coords="135,56,214,83"/>
<area shape="poly" title=" " alt="" coords="246,72,214,72,214,67,246,67"/>
<area shape="rect" href="../../d4/d4d/classtree.html#aca269a11ef91945884af6bc8618434e1" title=" " alt="" coords="5,56,87,83"/>
<area shape="poly" title=" " alt="" coords="119,72,87,72,87,67,119,67"/>
</map>
</div>

</div>
</div>
<a id="a5a6ced7a1cee93b070d6d21cb113cbf8" name="a5a6ced7a1cee93b070d6d21cb113cbf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a6ced7a1cee93b070d6d21cb113cbf8">&#9670;&#160;</a></span>have_sibling() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::have_sibling </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;</td>          <td class="paramname"><span class="paramname"><em>p</em></span></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00348">348</a> 行定义.</p>

</div>
</div>
<a id="a8ab2d999ef5ffe8f75bf176392601147" name="a8ab2d999ef5ffe8f75bf176392601147"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ab2d999ef5ffe8f75bf176392601147">&#9670;&#160;</a></span>have_sibling() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::have_sibling </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>p</em></span></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00343">343</a> 行定义.</p>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a8ab2d999ef5ffe8f75bf176392601147_icgraph.png" border="0" usemap="#ad4/d4d/classtree_a8ab2d999ef5ffe8f75bf176392601147_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a8ab2d999ef5ffe8f75bf176392601147_icgraph" id="ad4/d4d/classtree_a8ab2d999ef5ffe8f75bf176392601147_icgraph">
<area shape="rect" title=" " alt="" coords="425,56,549,83"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a195cb527a182cacf1bfa1521a7a64e91" title="后根遍历" alt="" coords="269,5,370,32"/>
<area shape="poly" title=" " alt="" coords="425,53,365,35,367,30,426,48"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a56c4fd6197458cd9221aa73ca1292555" title="后根遍历，采用后根遍历非常方便销毁对象" alt="" coords="262,56,377,83"/>
<area shape="poly" title=" " alt="" coords="410,72,378,72,378,67,410,67"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a62787da47859dcb8785d55ba29c6677f" title="后根遍历, 将节点以指针的方式传递给回调函数，并且以指定节点开始遍历" alt="" coords="262,107,377,133"/>
<area shape="poly" title=" " alt="" coords="426,90,367,109,365,104,425,85"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a764ccf0cec30d22799367817dbf77458" title="释放内容" alt="" coords="135,56,214,83"/>
<area shape="poly" title=" " alt="" coords="246,72,214,72,214,67,246,67"/>
<area shape="rect" href="../../d4/d4d/classtree.html#aca269a11ef91945884af6bc8618434e1" title=" " alt="" coords="5,56,87,83"/>
<area shape="poly" title=" " alt="" coords="119,72,87,72,87,67,119,67"/>
</map>
</div>

</div>
</div>
<a id="a75e48363bb7d31de42b18a63bb06afed" name="a75e48363bb7d31de42b18a63bb06afed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75e48363bb7d31de42b18a63bb06afed">&#9670;&#160;</a></span>insert() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>parent</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a></td>          <td class="paramname"><span class="paramname"><em>value</em></span>&#160;)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>在给定的父节点下添加一个孩子节点。这个函数只会在父节点下的所有孩子节点最后添加 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">parent[</td><td>I ] , 父节点 </td></tr>
    <tr><td class="paramname">value[</td><td>I ] , 要添加的值 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>成功返回OK，否则返回错误代码 </dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00607">607</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a75e48363bb7d31de42b18a63bb06afed_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a75e48363bb7d31de42b18a63bb06afed_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a75e48363bb7d31de42b18a63bb06afed_cgraph" id="ad4/d4d/classtree_a75e48363bb7d31de42b18a63bb06afed_cgraph">
<area shape="rect" title="在给定的父节点下添加一个孩子节点。这个函数只会在父节点下的所有孩子节点最后添加" alt="" coords="5,13,89,40"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a0577532f377d701d96c4822b3fc45192" title="添加孩子节点。这个操作在孩子节点的最后追加内容" alt="" coords="137,5,277,48"/>
<area shape="poly" title=" " alt="" coords="89,24,121,24,121,29,89,29"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a1dd627bd23e96af4a68b0a7a5830619d" title=" " alt="" coords="325,13,490,40"/>
<area shape="poly" title=" " alt="" coords="277,24,309,24,309,29,277,29"/>
</map>
</div>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a75e48363bb7d31de42b18a63bb06afed_icgraph.png" border="0" usemap="#ad4/d4d/classtree_a75e48363bb7d31de42b18a63bb06afed_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a75e48363bb7d31de42b18a63bb06afed_icgraph" id="ad4/d4d/classtree_a75e48363bb7d31de42b18a63bb06afed_icgraph">
<area shape="rect" title="在给定的父节点下添加一个孩子节点。这个函数只会在父节点下的所有孩子节点最后添加" alt="" coords="147,31,230,57"/>
<area shape="rect" href="../../dc/d2f/classfs.html#aca59d4eca486930e503c0e6902ae591c" title="枚举文件，将指定目录按照原本的结构整理成一个可以以树形结构遍历的数据" alt="" coords="5,5,99,32"/>
<area shape="poly" title=" " alt="" coords="131,36,99,30,100,25,132,31"/>
<area shape="rect" href="../../de/d8d/bplus_8hpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title=" " alt="" coords="27,56,77,83"/>
<area shape="poly" title=" " alt="" coords="132,57,78,67,77,62,131,52"/>
</map>
</div>

</div>
</div>
<a id="a71b5751a6a55395afe0e65c28e37597a" name="a71b5751a6a55395afe0e65c28e37597a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71b5751a6a55395afe0e65c28e37597a">&#9670;&#160;</a></span>insert() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>parent</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>node</em></span>&#160;)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>注解</dt><dd>为了防止采用引用符号的获取的指针的应用操作，这个函数对传入的指针会重新进行内存的分配 所以外部如果使用了指针，必须自己进行内存的释放 </dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00627">627</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a71b5751a6a55395afe0e65c28e37597a_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a71b5751a6a55395afe0e65c28e37597a_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a71b5751a6a55395afe0e65c28e37597a_cgraph" id="ad4/d4d/classtree_a71b5751a6a55395afe0e65c28e37597a_cgraph">
<area shape="rect" title=" " alt="" coords="5,13,89,40"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a0577532f377d701d96c4822b3fc45192" title="添加孩子节点。这个操作在孩子节点的最后追加内容" alt="" coords="137,5,277,48"/>
<area shape="poly" title=" " alt="" coords="89,24,121,24,121,29,89,29"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a1dd627bd23e96af4a68b0a7a5830619d" title=" " alt="" coords="325,13,490,40"/>
<area shape="poly" title=" " alt="" coords="277,24,309,24,309,29,277,29"/>
</map>
</div>

</div>
</div>
<a id="ad2c4e9d187d6364bb08bbeb233949687" name="ad2c4e9d187d6364bb08bbeb233949687"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2c4e9d187d6364bb08bbeb233949687">&#9670;&#160;</a></span>insert() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>parent</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>pre</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="#a5a303c900a625a4f4b2d7476b61bae24">reference</a></td>          <td class="paramname"><span class="paramname"><em>value</em></span>&#160;)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">parent[</td><td>I ] </td></tr>
    <tr><td class="paramname">pre[</td><td>I ] </td></tr>
    <tr><td class="paramname">value[</td><td>I ] </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd></dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00650">650</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_ad2c4e9d187d6364bb08bbeb233949687_cgraph.png" border="0" usemap="#ad4/d4d/classtree_ad2c4e9d187d6364bb08bbeb233949687_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_ad2c4e9d187d6364bb08bbeb233949687_cgraph" id="ad4/d4d/classtree_ad2c4e9d187d6364bb08bbeb233949687_cgraph">
<area shape="rect" title=" " alt="" coords="5,85,89,112"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#afec2c41157f226f9f9da46bcb9afa8ac" title="去父亲节点" alt="" coords="137,5,286,32"/>
<area shape="poly" title=" " alt="" coords="67,82,135,42,149,36,152,40,138,46,69,87"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a54951c8d6a396be5c3ef091cae7386e5" title=" " alt="" coords="146,56,276,83"/>
<area shape="poly" title=" " alt="" coords="89,89,130,81,131,86,90,94"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a0577532f377d701d96c4822b3fc45192" title="添加孩子节点。这个操作在孩子节点的最后追加内容" alt="" coords="141,107,282,149"/>
<area shape="poly" title=" " alt="" coords="90,103,126,110,125,115,89,109"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#ad60ae0d2ef5ed5d67141975493bc257c" title="取弟弟节点指针" alt="" coords="137,173,286,200"/>
<area shape="poly" title=" " alt="" coords="66,110,98,135,138,159,150,165,148,170,135,164,95,139,63,114"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a1dd627bd23e96af4a68b0a7a5830619d" title=" " alt="" coords="334,115,499,141"/>
<area shape="poly" title=" " alt="" coords="282,125,319,125,319,131,282,131"/>
</map>
</div>

</div>
</div>
<a id="a265eb5fcb1aab37f8bfc746f6bf4fb77" name="a265eb5fcb1aab37f8bfc746f6bf4fb77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a265eb5fcb1aab37f8bfc746f6bf4fb77">&#9670;&#160;</a></span>insert() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>parent</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>pre</em></span>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>node</em></span>&#160;)</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00678">678</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a265eb5fcb1aab37f8bfc746f6bf4fb77_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a265eb5fcb1aab37f8bfc746f6bf4fb77_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a265eb5fcb1aab37f8bfc746f6bf4fb77_cgraph" id="ad4/d4d/classtree_a265eb5fcb1aab37f8bfc746f6bf4fb77_cgraph">
<area shape="rect" title=" " alt="" coords="5,85,89,112"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#afec2c41157f226f9f9da46bcb9afa8ac" title="去父亲节点" alt="" coords="137,5,286,32"/>
<area shape="poly" title=" " alt="" coords="67,82,135,42,149,36,152,40,138,46,69,87"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a54951c8d6a396be5c3ef091cae7386e5" title=" " alt="" coords="146,56,276,83"/>
<area shape="poly" title=" " alt="" coords="89,89,130,81,131,86,90,94"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a0577532f377d701d96c4822b3fc45192" title="添加孩子节点。这个操作在孩子节点的最后追加内容" alt="" coords="141,107,282,149"/>
<area shape="poly" title=" " alt="" coords="90,103,126,110,125,115,89,109"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#ad60ae0d2ef5ed5d67141975493bc257c" title="取弟弟节点指针" alt="" coords="137,173,286,200"/>
<area shape="poly" title=" " alt="" coords="66,110,98,135,138,159,150,165,148,170,135,164,95,139,63,114"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a1dd627bd23e96af4a68b0a7a5830619d" title=" " alt="" coords="334,115,499,141"/>
<area shape="poly" title=" " alt="" coords="282,125,319,125,319,131,282,131"/>
</map>
</div>

</div>
</div>
<a id="a73beb0e756fc71efca1224f31e0925b7" name="a73beb0e756fc71efca1224f31e0925b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a73beb0e756fc71efca1224f31e0925b7">&#9670;&#160;</a></span>remove()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::remove </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> *</td>          <td class="paramname"><span class="paramname"><em>node</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>删除节点 </p>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00705">705</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a73beb0e756fc71efca1224f31e0925b7_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a73beb0e756fc71efca1224f31e0925b7_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a73beb0e756fc71efca1224f31e0925b7_cgraph" id="ad4/d4d/classtree_a73beb0e756fc71efca1224f31e0925b7_cgraph">
<area shape="rect" title="删除节点" alt="" coords="5,81,100,108"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a4b4b7f6f107e9504e8cdc5427951bbbd" title=" " alt="" coords="148,5,305,32"/>
<area shape="poly" title=" " alt="" coords="76,78,147,42,163,35,165,40,149,46,78,83"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#afec2c41157f226f9f9da46bcb9afa8ac" title="去父亲节点" alt="" coords="152,56,300,83"/>
<area shape="poly" title=" " alt="" coords="100,85,136,80,137,85,101,90"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a54951c8d6a396be5c3ef091cae7386e5" title=" " alt="" coords="161,107,292,133"/>
<area shape="poly" title=" " alt="" coords="101,99,146,106,145,111,100,104"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#ad60ae0d2ef5ed5d67141975493bc257c" title="取弟弟节点指针" alt="" coords="152,157,301,184"/>
<area shape="poly" title=" " alt="" coords="78,106,149,143,165,149,163,154,147,148,76,111"/>
</map>
</div>
<div class="dynheader">
这是这个函数的调用关系图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a73beb0e756fc71efca1224f31e0925b7_icgraph.png" border="0" usemap="#ad4/d4d/classtree_a73beb0e756fc71efca1224f31e0925b7_icgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a73beb0e756fc71efca1224f31e0925b7_icgraph" id="ad4/d4d/classtree_a73beb0e756fc71efca1224f31e0925b7_icgraph">
<area shape="rect" title="删除节点" alt="" coords="291,56,385,83"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a764ccf0cec30d22799367817dbf77458" title="释放内容" alt="" coords="149,5,228,32"/>
<area shape="poly" title=" " alt="" coords="281,53,228,35,230,30,283,48"/>
<area shape="rect" href="../../de/d8d/bplus_8hpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title=" " alt="" coords="164,56,214,83"/>
<area shape="poly" title=" " alt="" coords="275,72,214,72,214,67,275,67"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a50348bdb1b8eaaeb2ec6723ec36abc94" title="条件删除操作" alt="" coords="135,107,243,133"/>
<area shape="poly" title=" " alt="" coords="283,91,231,109,230,104,282,86"/>
<area shape="rect" href="../../d4/d4d/classtree.html#aca269a11ef91945884af6bc8618434e1" title=" " alt="" coords="5,5,87,32"/>
<area shape="poly" title=" " alt="" coords="134,21,87,21,87,16,134,16"/>
</map>
</div>

</div>
</div>
<a id="a50348bdb1b8eaaeb2ec6723ec36abc94" name="a50348bdb1b8eaaeb2ec6723ec36abc94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50348bdb1b8eaaeb2ec6723ec36abc94">&#9670;&#160;</a></span>remove_if()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="#a8aaac996333eff591e075d9d9ff23d1f">emErrCode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::remove_if </td>
          <td>(</td>
          <td class="paramtype">std::function&lt; bool(<a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> &amp;node)&gt;</td>          <td class="paramname"><span class="paramname"><em>fun</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>条件删除操作 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">fun</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd></dd></dl>

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00738">738</a> 行定义.</p>
<div class="dynheader">
函数调用图:</div>
<div class="dyncontent">
<div class="center"><img src="../../d4/d4d/classtree_a50348bdb1b8eaaeb2ec6723ec36abc94_cgraph.png" border="0" usemap="#ad4/d4d/classtree_a50348bdb1b8eaaeb2ec6723ec36abc94_cgraph" alt=""/></div>
<map name="ad4/d4d/classtree_a50348bdb1b8eaaeb2ec6723ec36abc94_cgraph" id="ad4/d4d/classtree_a50348bdb1b8eaaeb2ec6723ec36abc94_cgraph">
<area shape="rect" title="条件删除操作" alt="" coords="5,56,114,83"/>
<area shape="rect" href="../../d4/d4d/classtree.html#af7ab12229576333df8da0020464d5e7c" title="遍历树" alt="" coords="162,31,263,57"/>
<area shape="poly" title=" " alt="" coords="114,58,146,52,147,58,115,63"/>
<area shape="rect" href="../../d4/d4d/classtree.html#a73beb0e756fc71efca1224f31e0925b7" title="删除节点" alt="" coords="165,81,260,108"/>
<area shape="poly" title=" " alt="" coords="115,76,150,82,149,87,114,81"/>
<area shape="poly" title=" " alt="" coords="186,31,181,22,184,12,195,6,212,4,231,7,241,13,238,18,229,12,212,9,197,11,188,16,186,21,190,29"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a4b4b7f6f107e9504e8cdc5427951bbbd" title=" " alt="" coords="311,5,468,32"/>
<area shape="poly" title=" " alt="" coords="240,78,262,67,310,42,327,35,329,40,312,46,264,72,242,83"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#afec2c41157f226f9f9da46bcb9afa8ac" title="去父亲节点" alt="" coords="316,56,464,83"/>
<area shape="poly" title=" " alt="" coords="260,85,300,79,300,85,260,91"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#a54951c8d6a396be5c3ef091cae7386e5" title=" " alt="" coords="324,107,455,133"/>
<area shape="poly" title=" " alt="" coords="260,99,309,106,308,111,260,104"/>
<area shape="rect" href="../../d1/d44/classtree_1_1tree_node.html#ad60ae0d2ef5ed5d67141975493bc257c" title="取弟弟节点指针" alt="" coords="315,157,464,184"/>
<area shape="poly" title=" " alt="" coords="239,106,312,143,329,149,327,154,310,148,236,111"/>
</map>
</div>

</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="ac00e08f3dcb0e3bc7b60dd552924439b" name="ac00e08f3dcb0e3bc7b60dd552924439b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac00e08f3dcb0e3bc7b60dd552924439b">&#9670;&#160;</a></span>m_root</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a> <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::m_root</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00298">298</a> 行定义.</p>

</div>
</div>
<a id="a24b2e5626feba6cf0e5575eb2bb789be" name="a24b2e5626feba6cf0e5575eb2bb789be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24b2e5626feba6cf0e5575eb2bb789be">&#9670;&#160;</a></span>p_cur</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type , typename metaType  = typename std::decay&lt; type &gt; :: type, typename T  = typename std::conditional&lt; std::is_pointer&lt; metaType &gt;::value,					 typename std::remove_pointer&lt; metaType &gt;::type,					 metaType					 &gt;::type&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d44/classtree_1_1tree_node.html">treeNode</a>* <a class="el" href="../../d4/d4d/classtree.html">tree</a>&lt; type, metaType, T &gt;::p_cur</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a> 第 <a class="el" href="../../de/dfd/tree_8hpp_source.html#l00299">299</a> 行定义.</p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>include/<a class="el" href="../../de/dfd/tree_8hpp_source.html">tree.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0
</small></address>
</div><!-- doc-content -->
</body>
</html>
